PostgreSQL pg_stat_statements 安装与配置
1 背景知识
本文主要介绍如何在 PostgreSQL16 环境下安装 pg_stat_statements 插件。
2 pg_stat_statements 安装
2.1 数据库配置
此插件在启动数据库时,还需使用共享缓存存放SQL 的统计信息。所以需要配置 shared_preload_libraries 参数。并且还需要配置 pg_stat_statements 插件。
su - postgres
#postgres>
vi $PGDATA/postgresql.conf
# postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
重启数据库之后,在每个数据库中安装扩展。
pg_ctl restart -D $PGDATA
waiting for server to shut down.... done
server stopped
waiting for server to start....2024-06-09 14:40:59.919 CST [2381]LOG: 00000: redirecting log output to logging collector process
2024-06-09 14:40:59.919 CST [2381]HINT: Future log output will appear in directory "pg_log".
2024-06-09 14:40:59.919 CST [2381]LOCATION: SysLogger_Start, syslogger.c:712
done
server started
su - postgres
#postgres>
psql -U postgres -d testdb -c "CREATE EXTENSION pg_stat_statements CASCADE;"
psql -U postgres -d template1 -c "CREATE EXTENSION pg_stat_statements CASCADE;"
psql -U postgres -d postgres -c "CREATE EXTENSION pg_stat_statements CASCADE;"
2.2 pg_stat_statements 配置
psql -U postgres -d testdb -c "ALTER SYSTEM SET pg_stat_statements.max=10000;"
pg_ctl restart -D $PGDATA
psql -U postgres -d testdb -c "SHOW pg_stat_statements.max;"
pg_stat_statements.max
------------------------
10000
(1 row)
关于 pg_stat_statements.max
参数的详细说明,请参考 pg_stat_statements.max 章节。